package com.ucode.model.hrm.form;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import java.time.LocalDate;

/**
 * 企业主体
 * @Author: liliang
 * @Date: 2025/6/5 21:06
 * @Version: 1.0
 */
@Schema(description = "人力资源管理系统 - 企业主体Form")
@Data
@EqualsAndHashCode
@ToString(callSuper = true)
public class HrmCompanyForm {
    /**
     * 公司名称
     */
    @Schema(description = "企业名称", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotBlank(message = "企业名称不能为空")
    @Size(max = 100, message = "企业名称不能超过 100 个字符")
    private String name;
    /**
     * 统一社会信用代码
     */
    @Schema(description = "统一社会信用代码", requiredMode = Schema.RequiredMode.AUTO)
    @Size(max = 30, message = "统一社会信用代码不能超过 30 个字符")
    private String creditCode;
    /**
     * 注册资金
     */
    @Schema(description = "注册资金", requiredMode = Schema.RequiredMode.AUTO)
    @Size(max = 20, message = "注册资金不能超过 20 个字符")
    private String regCapital;
    /**
     *  注册地址
     */
    @Schema(description = "注册地址", requiredMode = Schema.RequiredMode.AUTO)
    @Size(max = 255, message = "注册地址不能超过 255 个字符")
    private String regAddress;

    /**
     *  联系邮箱
     */
    @Schema(description = "联系邮箱", requiredMode = Schema.RequiredMode.AUTO)
    @Size(max = 50, message = "联系邮箱不能超过 50 个字符")
    private String email;

    /**
     *  注册时间
     */
    @Schema(description = "注册时间", requiredMode = Schema.RequiredMode.AUTO)
    private LocalDate regTime;
    /**
     * 法定代表人
     */
    @Schema(description = "法定代表人", requiredMode = Schema.RequiredMode.AUTO)
    @Size(max = 50, message = "法定代表人不能超过 50 个字符")
    private String legalPerson;
    /**
     * 经营范围
     */
    @Schema(description = "经营范围", requiredMode = Schema.RequiredMode.AUTO)
    @Size(max = 255, message = "经营范围不能超过 255 个字符")
    private String businessScope;

    /**
     * 印章存储路径
     */
    @Schema(description = "印章", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotBlank(message = "印章不能为空")
    @Size(max = 255, message = "印章不能超过 255 个字符")
    private String  storageUrl;

    /**
     * 第三方印章平台类型
     */
    private Integer threeStorageType;

    /**
     * 第三方印章ID
     */
    private String threeStorageId;


}
